﻿''=============================================================================
''OMANE - Outils de calcul actuariat emprunteur
''Copyright © 2010 PIERRE TISSOT CONSEIL / NATIXIS ASSURANCES
''=============================================================================
Imports PTIC_Util
Imports System.Collections.ObjectModel

''' <summary>
'''  Interface de base pour tous les parametres 
''' </summary>
''' <remarks>Cette interface doit etre implémentée par tous les parametres</remarks>
Public Interface IParametre

#Region "Nom"
    ''' <summary>
    ''' Nom du Parametre
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    ReadOnly Property Nom() As String
#End Region
#Region "Description"
    ''' <summary>
    ''' Description du Parametre
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    ReadOnly Property Description() As String
#End Region
#Region "Type"
    ''' <summary>
    ''' Type associé au Parametre
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    ReadOnly Property Type() As System.Type
#End Region
#Region "Nature"
    ''' <summary>
    ''' Nature du Parametre
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    ReadOnly Property Nature() As ParamNature
#End Region
#Region "Méthodes de calcul associées"
    ''' <summary>
    ''' Méthode de calcul
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Property Methode_Cal() As Boolean()
#End Region
#Region "Requète associée"
    ''' <summary>
    ''' Requête associée au paramètre
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Property Requete() As PTIC_GestionBDD.RequeteBDD
#End Region
#Region "Valeurs"
    ''' <summary>
    ''' Valeurs du paramètre
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Property Valeurs As System.Data.DataTable
    ''' <summary>
    ''' Mise à jour des valeurs du paramètre (exécution éventuelle de la requête et MAJ de la table des valeurs)
    ''' </summary>
    ''' <remarks></remarks>
    Sub MAJValeurs()
#End Region
#Region "Liste des segments"
    ''' <summary>
    ''' Renvoie la liste des identifiants des colonnes
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    ReadOnly Property ListeSegments() As ObservableCollection(Of String)
#End Region
#Region "SimulDouble"
    ''' <summary>
    ''' Choc appliqué au paramètre (utilisé par les simulations)
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Property SimulDouble As Double
#End Region
#Region "Valeur en cours (une ligne de la DataTable en cours d'étude pour les moteurs (valeur ajustée de simulDouble))"
    ''' <summary>
    ''' Valeur courante du paramètre (correspondant à une ligne de la DataTable)
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Property ValeurEnCoursAsObject As Object
#End Region
#Region "Valeur unique"
    ''' <summary>
    ''' Renvoie la valeur unique du parametre sour forme d' <see cref="Object" />
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    ReadOnly Property ValeurUniqueAsObject() As Object
#End Region
#Region "Deserialization"
    Sub Deserialize(ByVal param As IParametre)
#End Region

    Event hasChanged As EventHandler

End Interface